﻿using Management.API.DTOs.Management;
using Management.Errorcode;
using MediatR;

namespace Management.API.Application.Controller.Management.Material
{ 
    public class GetMaterialCommand : IRequest<ApiResult<IList<GetMaterialDTO>>>
    {
        /// <summary>
        /// 主键
        /// </summary>
        public int MaterialId { get; set; }

        /// <summary>
        /// 物料编号
        /// </summary>
        public string MaterialNumber { get; set; }

        /// <summary>
        /// 编号状态
        /// </summary>
        public bool MaterialNumberingState { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        public string MaterialName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 物料状态
        /// </summary>
        public bool MaterialStatus { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public string MaterialInventoryCeiling { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public string MaterialStockFloor { get; set; }

        /// <summary>
        /// 采购价格
        /// </summary>
        public string MaterialPurchasePrice { get; set; }

        /// <summary>
        /// 上传图片
        /// </summary>
        public string MaterialUploadPictures { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string MaterialRemark { get; set; }

        /// <summary>
        /// 有效期
        /// </summary>
        public string MaterialValidity { get; set; }

        /// <summary>
        /// 报警天数
        /// </summary>
        public string MateriAlalarmDays { get; set; }

        /// <summary>
        /// 日期状态
        /// </summary>
        public bool MaterialDateStatus { get; set; }


        /// <summary>
        /// 物料类型
        /// </summary>
        public int MaterialtypeId { get; set; }

        /// <summary>
        /// 物料属性
        /// </summary>
        public int MaterialpropertyId { get; set; }

        /// <summary>
        /// 物料分类
        /// </summary>
        public int MaterialclassificationId { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public int UnitId { get; set; }

        /// <summary>
        /// 日期类型
        /// </summary>
        public int DatetypeId { get; set; }
    }
    /// <summary>
    /// 添加  参数
    /// </summary>
    public class AddMaterialCommand : IRequest<ApiResult>
    {
        /// <summary>
        /// 主键
        /// </summary>
        public int MaterialId { get; set; }

        /// <summary>
        /// 物料编号
        /// </summary>
        public string MaterialNumber { get; set; }

        /// <summary>
        /// 编号状态
        /// </summary>
        public bool MaterialNumberingState { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        public string MaterialName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 物料状态
        /// </summary>
        public bool MaterialStatus { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public string MaterialInventoryCeiling { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public string MaterialStockFloor { get; set; }

        /// <summary>
        /// 采购价格
        /// </summary>
        public string MaterialPurchasePrice { get; set; }

        /// <summary>
        /// 上传图片
        /// </summary>
        public string MaterialUploadPictures { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string MaterialRemark { get; set; }

        /// <summary>
        /// 有效期
        /// </summary>
        public string MaterialValidity { get; set; }

        /// <summary>
        /// 报警天数
        /// </summary>
        public string MateriAlalarmDays { get; set; }

        /// <summary>
        /// 日期状态
        /// </summary>
        public bool MaterialDateStatus { get; set; }


        /// <summary>
        /// 物料类型
        /// </summary>
        public int MaterialtypeId { get; set; }

        /// <summary>
        /// 物料属性
        /// </summary>
        public int MaterialpropertyId { get; set; }

        /// <summary>
        /// 物料分类
        /// </summary>
        public int MaterialclassificationId { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public int UnitId { get; set; }

        /// <summary>
        /// 日期类型
        /// </summary>
        public int DatetypeId { get; set; }
    }

    /// <summary>
    /// ID查询
    /// </summary>
    public class GetIDMaterialCommand : IRequest<ApiResult<GetMaterialCommand>>
    {
        public int MaterialId { get; set; }
    }

    //批量添加
    public class AddUsersMaterialCommand : IRequest<ApiResult>
    {
        public List<GetMaterialDTO> Material { get; set; }
    }

    //删除
    public class DeleteMaterialCommand : IRequest<ApiResult>
    {
        public int MaterialId { get; set; }
    }

    //修改
    public class UpdateMaterialCommand : IRequest<ApiResult>
    {
        /// <summary>
        /// 主键
        /// </summary>
        public int MaterialId { get; set; }

        /// <summary>
        /// 物料编号
        /// </summary>
        public string MaterialNumber { get; set; }

        /// <summary>
        /// 编号状态
        /// </summary>
        public bool MaterialNumberingState { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        public string MaterialName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 物料状态
        /// </summary>
        public bool MaterialStatus { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public string MaterialInventoryCeiling { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public string MaterialStockFloor { get; set; }

        /// <summary>
        /// 采购价格
        /// </summary>
        public string MaterialPurchasePrice { get; set; }

        /// <summary>
        /// 上传图片
        /// </summary>
        public string MaterialUploadPictures { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string MaterialRemark { get; set; }

        /// <summary>
        /// 有效期
        /// </summary>
        public string MaterialValidity { get; set; }

        /// <summary>
        /// 报警天数
        /// </summary>
        public string MateriAlalarmDays { get; set; }

        /// <summary>
        /// 日期状态
        /// </summary>
        public bool MaterialDateStatus { get; set; }


        /// <summary>
        /// 物料类型
        /// </summary>
        public int MaterialtypeId { get; set; }

        /// <summary>
        /// 物料属性
        /// </summary>
        public int MaterialpropertyId { get; set; }

        /// <summary>
        /// 物料分类
        /// </summary>
        public int MaterialclassificationId { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public int UnitId { get; set; }

        /// <summary>
        /// 日期类型
        /// </summary>
        public int DatetypeId { get; set; }
    }


}
